/**
 * @file e3_t2_q7.c
 * @date 2022-03-09
 * 
 * @copyright Copyright (c) 2022 cnzyx MIT Licence
 * 
 */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void reverse(char *str){
    int len=strlen(str)-1;
    char temp;
    for(int i=0;i<(len/2);i++){
        temp=str[i];
        str[i]=str[len-i-1];
        str[len-i-1]=temp;
    }
}

void fun(char *str1,char *str2,char *result){
    // 由fgets获取的字符串会读入'\n',故减去2
    int len=strlen(str1)+strlen(str2)-2,flag=0;
    reverse(str2);
    for(int i=0,j=0,k=0;i<len;i++){
        // 由fgets获取的字符串会读入'\n'
        if((flag||i%2==0)&&str1[j]!='\n'&&str1[j]!='\0'){
            result[i]=str1[j++];
        }
        // 由fgets获取的字符串会读入'\n'
        else if(str2[k]=='\n'||str2[k]=='\0'){
            flag=1;
            i--;
        }
        else{
            result[i]=str2[k++];
        }
    }
    result[len]='\0';
    
}

int main(int argc, char const *argv[])
{
    //UTF-8
    system("chcp 65001");

    char str1[101],str2[101],result[101];
    printf("请输入第一个字符串：");
     // 危险函数gets()已经弃用，
    // 因为使用fgets()获取字符串有_MaxCount参数限制缓冲区，
    // 但fgets()会读入'\n'
    fgets(str1,100,stdin);
    printf("请输入第二个字符串：");
    fgets(str2,100,stdin);
    fun(str1,str2,result);
    printf("结果：%s\n",result);
    
    //Pause console
    system("pause");
    return 0;
}
